/**
 * 
 */
package org.linkminder.api;

import java.util.*;
import java.sql.Connection;
import org.linkminder.LinkMinderException;

/**
 * @author jackpark
 *
 */
public interface ILinkMinderDataProvider {
	
	Connection getConnection() throws LinkMinderException;
	void shutDown();

	/**
	 * Ideas are those things we type into a list
	 * @param con TODO
	 * @param idea
	 * @return can return <code>null<code>
	 * @throws LinkMinderException
	 */
	List<String> get(Connection con, String idea) throws LinkMinderException;
	
	/**
	 * Associate an <code>associatedIdea</code> with a given <code>idea</code> and
	 * return the list of associated ideas
	 * @param con TODO
	 * @param idea
	 * @param associatedIdea
	 * @return does not return <code>null</code>
	 * @throws LinkMinderException
	 */
	List<String> associate(Connection con, String idea, String associatedIdea) throws LinkMinderException;
	
}
